package com.jxs.easysecurity.token;


import com.jxs.easysecurity.exception.AccessTokenResolveException;

/**
 * 访问凭证生成工具
 * @author jiangxingshang
 * @since 17/6/20
 */
public interface AccessTokenFactory {

    /**
     *
     * @param sessionId 在集合中必须是唯一的，用于在服务端缓存用户信息的键，此键也参与加密运算。
     * @param timeout 凭证的有效期限，the current time as UTC milliseconds from the epoch。
     * @param tokenMergeInfo
     * @return
     */
    AccessTokenEx build(String sessionId, long timeout, TokenMergeInfo tokenMergeInfo);

    /**
     * 将加密的凭证信息解密，返回明文内容。
     * @param token 凭证信息
     * @return
     */
    AccessTokenEx resolve(String token) throws AccessTokenResolveException;
}
